<?php
function add_LUR( $usuario = "", $clave = "", $nom_role = "", $bd = "", $usu = "", $cla = "" ) {
	
	// Valida que todas las variables tenga informacion
	if ( $usuario == "" || $clave == "" || $nom_role == "" || $bd == "" || $usu == "" || $cla == "" ) {
		return 1;	// Error: una de las varibles esta en blanco
	}
	
	
	// Creamos una conexion a la BD 
	$conexion 	= new class_BD;
	$var 		=  $conexion->conexion_BD( $_SESSION['manejador_db'], $_SESSION['usuario_db'], $_SESSION['password_db'], $_SESSION['db_portal'], $_SESSION['rol_db'] );
	
	
	// Parseamos las Bases de Datos del Usuario
	$bds	= split( ",", $bd );
	$cant2	= count( $bds );
	
	if ( $cant2 < 1 ) {
		return 7;	// Error en la variable de las bases de datos
	} else {
		
		$sql 	= "exec sp_addlogin '$usuario', '$clave', '$bds[0]'";
		//echo "<br>SQL: ".$sql."<br>";
		$rs 		= $conexion->consulta_BD($sql) or die("No se pudo agregar el Login");
		$resultado 	= $conexion->get_last_message_BD();
		
		if ( $resultado == 'New login created.' ) {
			// TODO BIEN - LOGIN CREADO EN LA BD
		} else {
			$conexion->desconectar_BD();
			return 2;	// Error: El Login ya existe
		}
		
		for ( $ii = 0; $ii <= ($cant2-1); $ii++ ) {
			//	Creamos el Usuario en la BD
			$sql 	= "USE ".$bds[$ii]." exec sp_adduser '$usuario'";
			//echo "<br>SQL: ".$sql."<br>";
			$rs 		= $conexion->consulta_BD($sql) or die("No se pudo agregar el Usuario");
			$resultado	= $conexion->get_last_message_BD();
			
			if ( $resultado == 'New user added.') {
				// TODO BIEN - USUARIO CREADO EN LA BD
			} else {
				$conexion->desconectar_BD();
				return 3;	// Error: El Usuario ya existe
			}
		}
	}
	
	
	// AGREGAMOS LOS ROLES
	
	// Parseamos los roles del Usuario
	$roles 	= split( ",", $nom_role );
	$cant	= count( $roles );
	
	if ( $cant < 1 ) {
		return 6;	// Error: la variable de los Roles es vacia
	} else {
		for ( $ii = 0; $ii <= ($cant-1); $ii++ ) {
			
			// Agregamos el role al usuario
			$sql 	= "exec sp_role 'grant', '".$roles[$ii]."', '$usuario'";
			//echo "<br>SQL: ".$sql."<br>";
			$rs 		= $conexion->consulta_BD($sql) or die("No se pudo agregar el Rol");
			$resultado 	= $conexion->get_last_message_BD();
			
			if ( $resultado == 'Authorization updated.' ) {
				// TODO BIEN - ROL AGREGADO AL USUARIO
			} else {
				$conexion->desconectar_BD();
				return 4;	// Error al Agregar el Rol
			}
			
			
			// Activamos el role agregado al usuario
			$sql 	= "exec sp_modifylogin '$usuario', 'add default role', '".$roles[$ii]."'";
			//echo "<br>SQL: ".$sql."<br>";
			$rs 		= $conexion->consulta_BD($sql) or die("No se pudo activar el Rol");
			$resultado 	= $conexion->get_last_message_BD();
			
			if ( $resultado == 'Option changed.' ) {
				// TODO BIEN - ROL ACTIVADO
			} else {
				$conexion->desconectar_BD();
				return 5;	// Error al Activar el Rol
			}
		}
	}
	
	$conexion->desconectar_BD();
	return 0;
	
	// =====================================================================================================
	// 	Leyenda de Errores
	// =====================================================================================================
	
	//	return 1 = Error, una de las varibles esta en blanco...
	//	return 2 = Error, el Login ya existe (A user with the specified login name already exists.)...
	//	return 3 = Error, el Usuario ya existe...
	//	return 4 = Error, error al Agregar el Role...
	//	return 5 = Error al Activar el Role...
	//	return 6 = Error en la variable de los Roles...
	//	return 7 = Error en la variable de las Bases de Datos...
	//	return 0 = OK...
}
?>